The present invention relates to the field of flash memory devices. More particularly, the invention relates to both a mechanism and method for multi-set block erase in NAND-based flash memory devices.
The overall array architecture for memory section of a typical NAND-based flash memory device comprises a core memory accessed by an upper and lower bank of page buffers and a right and left bank of word line or X-decoders. The core memory contains information stored in blocks of memory and individual memory cells or elements within the memory blocks. The right and left word line or X-decoders are used to access specific memory cells within each memory block and the upper and lower bank of page buffers provide the input and output circuitry for each memory cell. The X-decoders contain numerous final decoder circuits, each with a high voltage generating pump. There is generally one final decoder circuit for each memory block. Each final decoder circuit is linked by various predecoder output lines to a predecoder circuit.
The architecture of one memory block in the typical NAND-based flash memory device comprises the individual memory elements and select gates. The memory elements and select gates are embodied in non-volatile, floating gate transistors that may be programmed to a logic state of 0, 1, or other states depending on the particular type of transistor and programming used. The control gates of the transistors that comprise the individual memory elements and select gates in each memory block are addressed by word lines controlled by the addressing system. The memory elements are connected in series with each other and the select gates. The select gates, at the ends of the chain of memory cells, are connected with either the array common voltage Vss or a bitline. A page buffer is connected with a memory block via a bitline. The page buffer includes transistors and supporting circuitry that regulate the flow of data into and out of the memory block and into and out of the external system.
The array architecture associated with the memory device is shown in FIG. 1. The array contains N individual page buffers 110 in each bank of page buffers 102,104; thus, as there are both an upper 102 and lower 104 bank of page buffers, one entire page or word line 112 contains 2N bits. Left 106 and right 108 banks of X-decoders are used to select a particular word line. The core memory 100 is split into a set of M memory blocks 114 with each memory block 114 being L pages wide. This results in a 2N bits/pagexc3x97L pages/memory blockxc3x97M memory blocks/core memory=2xc3x97Lxc3x97Mxc3x97N bytes/core memory. One example of an array architecture used is 256 individual page buffers, a set of 1024 memory blocks with each memory block being 16 pages wide. This results in a 2xc3x97256 bytes/pagexc3x9716 pages/memory blockxc3x971024 memory blocks/core memory=8M bytes/core memory. Of course, any numbers presented here are merely illustrative of the principle of the invention as a whole. Those ordinarily skilled in the art will appreciate that the numbers associated with any of these elements, as well as the number of memory cells or elements in the overall device, may be changed without departing from the spirit and scope of the invention.
FIG. 2 shows the architecture of one memory block 114 in the NAND-based flash memory device of FIG. 1 along with the associated page buffer 110. The memory block 114 comprises many parallel strings like the string of 16 individual memory elements 130-145 and two select gates, SG1116 and SG2118, for example. As stated before, non-volatile transistors embody the memory elements 130-145 and select gates 116, 118. The word lines 151-166 and select gate lines 150, 167 are connected with the control gates of the memory elements 130-145 and select gates 116, 118. The memory elements 130-145 and select gates SG1116 and SG2118 are connected in series. Specifically, the source and drain of the memory elements 130-145 are connected to each other in series. Thus, the source of the first memory element 130 is tied to the drain of the memory second element 131, the source of the second memory element 131 is tied to the drain of the third memory element 132, etc. Accordingly, the select gates 116, 118 are connected to the ends of the chain of memory elements 130-145. The source of SG1116 is connected with the drain of the first memory element 130, while the drain of SG1116 is connected with a bitline 170. Similarly, the drain of SG2118 is connected with the source of the last memory element 145 and the source of SG2118 is connected with the array common (usually ground) voltage Vss 172.
The memory block 114 is connected with a page buffer 110 via a bitline 170. The page buffer 110 includes necessary circuitry well known in the art. The necessary circuitry may include, for example, a latch for latching data onto and out of the bitline 170, input/output circuitry for transferring data to the external system and assorted supporting circuitry inherent in the necessary circuitry.
Individual memory elements can undergo three distinct operations, which are shown in FIGS. 3, 4 and 5. The three operations are Program, shown in FIG. 3, Erase, shown in FIG. 4, and Read, shown in FIG. 5, and are described below. This discussion will be limited to standard, n-channel, NAND-based non-volatile memory elements, although those ordinarily skilled in the art will appreciate that the basic operations described herein can be easily extended to at least NOR-based non-volatile memory elements and multi-level non-volatile memory elements in which more than two states can be programmed.
The structure of the memory element 200 is well known in the art: a p-type semiconductor well 210 is disposed within a n-type semiconductor well 206. The n-type semiconductor well 206 is contained within a p-type semiconductor substrate 202. A set of n-type semiconductor junctions comprising the source 204 and drain 208 are disposed within the p-type semiconductor well 210. The p-type semiconductor well 210 and n-type semiconductor well 206 are usually maintained at the same voltage during device operation to avoid current flow from one of the well regions to the other.
The memory element further includes a control gate 212 and a floating gate 214. The gates 212, 214 are conventionally formed from polysilicon deposited and patterned on the surface of the substrate, although the floating gate 214 may alternately be formed from an ONO layer. The gates 212, 214 are formed such that an oxide is formed on part of the substrate with the floating gate 214 formed above the oxide. The control gate 212 is formed above the floating gate 214 and isolated from the floating gate 214 by a second oxide. Control signals are applied to the control gate 212.
During the program operation, as shown in FIG. 3, both the source 204 and the drain 208 of the memory element 200 are connected with Vss (usually ground). Prior to programming, the threshold voltage (or turn-on voltage) of the MOSFET is generally designed to be a negative voltage, so that a channel 216 of electrons 218 exists in the p-type semiconductor well 210 when the gate 212 is grounded. The channel 216 is disposed between the source 204 and drain 208 of the memory element 200. A large positive voltage is applied to the control gate 212, which causes electrons 218 to be trapped onto the floating gate 214 via Fowler-Nordheim tunneling. The threshold voltage of the transistor is increased if electrons are trapped on the floating gate 214. In this case, the threshold voltage of the programmed memory element changes from a negative voltage to a positive voltage.
During the erase operation, as shown in FIG. 4, the source 204 and the drain 208 of the memory element 200 are left floating while the control gate 212 is grounded at Vss. A large positive voltage is applied to both the p-type semiconductor well 210 and the n-type semiconductor well 206. As a consequence, the electrons 218 trapped on the floating gate 214 enter the p-type semiconductor well 210 via Fowler-Nordheim tunneling. The threshold voltage thus reverts to the original, unprogrammed threshold voltage of the transistor.
During the read operation, as shown in FIG. 5, the source 204 of the memory element 200 is connected with Vss while the drain is connected with the bitline 170. The voltage applied to the control gate 212 of the memory element 200 is between the threshold voltage of memory elements that have been erased and memory elements that have been programmed. In this case, the threshold voltage of a programmed memory element is positive and that of an erased memory element is negative and thus applying Vss to the control gate 212 is sufficient to differentiate between the two states. The voltage or current is determined on the bitline 170 to ascertain the state of the particular memory element selected, either programmed (0) or erased (1).
The preferred technique for sensing a memory cell, e.g., 130 in a string, e.g., 116, 130-145, 118 (FIG. 2) on a specific word line, e.g., 151 is to charge the bitline 170 before the specific word line 151 is addressed. The bitline 170 is initially charged up to a value close to a predetermined sensing level and then isolated or left floating. Each word line is connected with the control gate of a unique memory cell in each string. In a standard NAND-type flash memory device, to test a specific word line, all of the word line voltages not being tested 152-166 and the select gate voltages 150, 167 are held at a high enough voltage level to turn the memory element 131-145 on or open the channel of the transistor. The applied voltage must be greater than the voltage necessary to turn on a programmed memory element, whose threshold voltage is large, as well as an erased memory element, whose threshold voltage is substantially smaller.
As mentioned above, the voltage applied along the specific word line, e.g., 151 of the memory element to be read, e.g., 130 must be between the voltage necessary to read an erased memory cell and that necessary to read a programmed memory cell. If the specific memory cell being read, e.g., 130 has been erased, when the test voltage is applied, a complete circuit from the bitline 170 to ground 172 is created and the bitline 170 discharges. After a specific amount of time, the voltage on the bitline 170 is read. At this time, if the voltage on the bitline 170 is approximately the original sensing level, 1.0 V for example, then the circuit connecting the bitline 170 to ground 172 was not completed and the memory cell, e.g., 130 has been programmed. Thus, charge stored in the floating gate of the memory cell translates to a high voltage at the sensing node on the bitline and corresponds to a logic value of 0. Similarly, a low voltage at the sensing node on the bitline corresponds to a logic value of 1.
FIG. 6 sets out a block diagram of a portion of the memory architecture closely related to the X-decoding function. Only one side of the two-sided X-decoding function depicted in FIG. 1 is depicted in FIG. 6. The function and configuration of the other side will be apparent to one of skill in the art. The X-decoding function depicted involves several components. The figure depicts the X-decoder 240, the memory blocks, e.g., 242 within the core memory 244 and an array of voltage generators 246. The X-decoder 240 is coupled to each memory block, e.g., 242 by a separate bus of wordlines, e.g., 246 while the X-decoder is coupled to the array of voltage generators 248 by a generator bus line 250. A block address input line 252 delivers the block address A1 to the X-decoder while a wordline address input line 254 delivers the wordline location A2 within the memory block, e.g., 242 and within the wordline bus, e.g., 246 to the array of voltage generators 248. Inputting that wordline location A2 selects one voltage generator within the array corresponding to or associated with that wordline within the wordline bus.
Although only one of the voltage generators and the associated wordline is selected and generates a wordline source voltage, depending on the reason for accessing the memory cell the other voltage generators may generate voltages and voltages may be applied to their corresponding wordlines. The reasons which can have that influence include whether the operating mode is programming, erasure, or reading. For example, as described above, in a standard NAND-type flash memory device the read operation for one memory cell, e.g., 130 in a string (FIG. 2) applies high voltages to the control gates of the other memory cells 131-145 in the string in order to turn on those memory elements.
FIG. 7 is a mixed block and logic diagram of the X-decoder, together with its inputs and outputs and local pumps 270 (i.e., high voltage sources). The X-decoder has a predecoder stage 340 as well as a final decoder array stage 360 comprising an array of final decoder circuits, e.g., 370. The predecoder stage is shown arbitrarily as generating output on an array 380 of 3-bit buses, e.g., 390. For example, suppose that the address input A is the 9 bits A0 through A8. In this example A0 through A8 would be split into three subgroups of three bits each. Each of Zoi, Z1j and Z2k would correspond to one of those subgroups. The Zmn serve as inputs to the final decoder array stage 360. Specifically, Z0i would represent and have the function of the various 8 xe2x80x9candedxe2x80x9d combinations or minterms of A0, A1 and A2, e.g., A0xc2x7{overscore (A)}1xc2x7{overscore (A)}2; Z1j would similarly represent the 8 xe2x80x9candedxe2x80x9d combinations of A3, A4, and A5; and Z2k would similarly represent the 8 xe2x80x9candedxe2x80x9d combinations of A6, A7 and A8. The advantages of employing a predecoder stage 340 as part of a decoding process are well known in the art. These advantages include reduction in number of transistors, and therefore area, and reduction of the number of inputs on each AND gate, e.g., 400 in the final decoder array stage 360 from 9 to 3. That reduction in number of inputs decreases the fan-out requirement on the initial stage of decoding, i.e. the predecoder stage 340 in this method and a buffer stage in conventional 1-of-n-decoding.
The final decoder array stage 360 is an array of final decoder circuits, e.g., 370, each of which has an xe2x80x9candxe2x80x9d function as indicated by the symbol, e.g., 400 in each block of the final stage array 360. In the example shown where the address is A0 through A8, there are 29 final decoder circuits in the array 360. The final decoder array stage in the array 360 ultimately selects one of the memory blocks of the core memory. The final decoder array stage performs that selection through one of the local pumps, e.g., 270 which is ultimately coupled to one of the memory blocks (e.g. 242 of FIG. 6). The local pump employed is the one in the final decoder circuit, e.g., 370 selected by the predecoder 340.
In certain operations of the memory device, more than one memory block will be affected. For example, a group of memory blocks with sequential block addresses may be erased in one operation either simultaneously or sequentially. Each member of the group must be selected by the X-decoder for this operation. This selection can be performed by applying the address signals one by one to the memory device with the addresses being generated individually external to the memory device. The selection can also be performed by applying only the starting address and ending address of the group to the memory device provided that circuitry is available on the memory device to generate all intervening addresses.
As an example of the second approach, an arithmetic circuit, a counter and a comparator can perform the generation of the group of addresses. The starting address is subtracted from the ending address to obtain the total number of memory blocks with successive addresses. The counter is operated that many cycles successively adding one to the starting address. Alternatively, the starting address is increased by one successively, each time comparing the resulting address to the ending address. In either alternative, a number of circuits are employed and numerous cycles of time transpire before all the addresses are generated. Further, these addresses must be stored in registers if the operation is to be a simultaneous one, employing all the addresses at once.
In view of the above, a device for, and method of, performing multi-block selection in a flash memory device is provided. The selecting can be used for the purposes of subsequent erasure, programming, and reading among other purposes.
A first aspect of the present invention is directed towards a method for performing that selecting. The device includes a plurality of memory blocks. Each memory block has a block address comprising a string of bits with each bit situated at a bit location in that string. The method provides for a starting address which is the block address of a memory first block. The method provides as well for an ending address which is the block address of a memory second block.
The method of the invention includes generating one or more sets of pre-decoded z-signals in response to the starting address and the ending address. Each set corresponds to one of the block addresses included in the group comprising the starting address, the ending address and all the block addresses between these two addresses. The method also includes decoding each of those sets to generate one or more signals that select a memory block whose block address is included in that group.
In addition, the method may also be undertaken so that these sets of pre-decoded z-signals are the entirety of the sets of the pre-decoded z-signals corresponding to any of that group of block addresses. In that circumstance, the selecting signals collectively select all the memory blocks whose block addresses are included in that group.
In addition, the device employed in the method may also include a multi-block first bit location. That location is the most significant bit of all the bits where the starting address has a different bit than the ending address. In particular, at the multi-block first bit location the starting address has a logic 0 and the ending address has a logic 1. In this circumstance, the method also includes generating a converted memory block address. In the converted address the bits more significant than the multi-block first bit are the bits of the ending address. The bits less significant than, or equal in significance to, the multi-block first bit are a logic 1. Similarly, the method would include generating a converted complementary memory block address. In this converted address the bits more significant than the multi-block first bit are the complements of the bits of the ending address. The bits less significant than, or equal in significance to, the multi-block first bit are a logic 1. Finally, in this circumstance generating the pre-decoded z-signals is undertaken by pre-decoding the two converted addresses.
In addition, the method may also include comparing the starting addresses and the ending address so as to determine the multi-block first bit location.
A second aspect of the present invention is directed towards a device for performing multi-block selecting. The device includes a plurality of memory blocks. Each memory block has a block address comprising a string of bits with each bit situated at a bit location in that string. A starting address is the block address of a memory first block. An ending address is the block address of a memory second block.
The device includes a pre-decoder stage configured to generate one or more sets of pre-decoded z-signals. Each set corresponds to one of the block addresses included in the group comprising the starting address, the ending address and all the block addresses between those two addresses. The pre-decoder stage operates in response to the starting address and the ending address. The device also includes a final decoder array stage configured to generate one or more signals that select a memory block whose block address is included in that group. The final decoder array stage operates in response to each of the above sets.
In addition, the device may also be configured so that the sets of pre-decoded z-signals are the entirety of the sets of the pre-decoded z-signals corresponding to any of that group of block addresses. In that circumstance the selecting signals collectively select all the memory blocks whose block addresses are included in that group.
In addition, the device may also include a multi-block first bit location. That location is the most significant bit of all the bits where the starting address has a different bit than the ending address. In particular, at the multi-block first bit location the starting address has a logic 0 and the ending address has a logic 1. In this circumstance the device includes a first converter circuit configured to generate a converted memory block address where the bits more significant than the multi-block first bit are the bits of the ending address. The bits less significant than, or equal in significance to, the multi-block first bit are equal to a logic 1. Similarly, the device would include a second converter circuit configured to generate a converted complementary memory block address where the bits more significant than the multi-block first bit are the complements of the bits of the ending address. The bits less significant than, or equal in significance to, the multi-block first bit are equal to a logic 1. Finally, in this circumstance the pre-decoder stage generates the pre-decoded z-signals by pre-decoding the two converted addresses.
In addition, the device may also include a comparator circuit configured to compare the starting address and the ending address so as to determine the multi-block first bit location.
It is therefore a primary advantage of the present invention that the number of circuits necessary to enable a memory device to perform a multi-block operation is reduced.
It is a further advantage of the present invention that as a result the length of time expended by a memory device in performing a multi-block operation is reduced.
It is a further advantage of the present invention that a group of memory blocks can be simultaneously selected.
It is a further advantage of the present invention that a group of memory blocks can be selected by designating the addresses of only two of those blocks.